The present application relates generally to an improved data processing apparatus and method and more specifically to mechanisms for providing a simulated network boot environment for enabling a bootstrap redirection operation.
Computing devices typically, as part of a booting operation, load basic input/output system (BIOS) code for configuring the computing device to load an operating system, and subsequent application code for execution on the computing device. When the computing device first starts up, the first job for the BIOS software is the power-on self-test, which initializes and identifies system devices such as the CPU, RAM, video display card, keyboard and mouse, hard disk drive, optical disc drive, and other hardware. The BIOS then locates boot loader software held on a peripheral device (designated as a ‘boot device’), such as a hard disk or a CD/DVD, and loads and executes that software, giving it control of the computing device. This process is known as booting, or booting up, which is short for bootstrapping.
BIOS software is generally stored on a non-volatile memory chip, such as a read only memory (ROM) chip or the like, on the motherboard of the computing device. It is specifically designed to work with each particular model of computer, interfacing with various devices that make up the complementary chipset of the system.
A BIOS has a user interface (UI), typically a menu system accessed by pressing a certain key on the keyboard when the computing device powers on. In the BIOS UI, a user can configure hardware, set the system clock, enable or disable system components, select which devices are eligible to be a potential boot device, set various password prompts, and the like. The BIOS provides a small library of basic input/output functions used to operate and control the peripherals such as the keyboard, text display functions and so forth, and these software library functions are callable by external software.
The role of the BIOS has changed over time. In modern computing devices, the BIOS is being replaced by the more complex Unified Extensible Firmware Interface (UEFI). UEFI is a specification that defines a software interface between an operating system and platform firmware. UEFI is a more secure replacement for the older BIOS firmware interface which is vulnerable to bootkit malware. UEFI can be used in business computers to allow remote diagnostics and repair of computers, even if the operating system will not load.